home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / 07_02.iso / macos / files / Netscape-mac-full.bin / Netscape-mac-full / Netscape Full Installer / Installer Modules / nim.xpi / viewer / Components / nsJSAimChatRendezvous.js < prev    next >
Encoding:
JavaScript  |  2002-05-12  |  4.8 KB  |  143 lines

  1. /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /*
  3.  * Probably need some copyright here! 
  4.  */
  5.  
  6. function nsJSAimChatRendezvous() {
  7.     dump("creating new nsJSAimChatRendezvous\n");
  8. }
  9.  
  10. nsJSAimChatRendezvous.prototype = {
  11.     // we just implement one function!
  12.     OnBuddyIconProposalReceived : function (screenname, proposal)
  13.     {
  14.  
  15.      dump ("OnBuddyIconProposalReceived : got a proposal from " + screenname + "\n");
  16.  
  17.      inviteArgsObj = {
  18.          inviteProposalScreenName: screenname, 
  19.          inviteProposalObj: proposal,
  20.          invitedScreenNames: '',
  21.          inviteToExistingWindow: false,
  22.          inviteMode: 'incomingchat'
  23.      }
  24.     
  25.      var windowManager = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService();
  26.  
  27.      var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
  28.  
  29.      var topWindow = windowManagerInterface.getMostRecentWindow(null);
  30.  
  31.      //topWindow.focus();
  32.      topWindow.openDialog('chrome://aim/content/IMBuddyIconKnockKnock.xul','','modal=yes,titlebar,chrome,dialog=no, centerscreen',inviteArgsObj); 
  33.     
  34.     },
  35.  
  36.     OnProposalReceived : function (screenname, proposal)
  37.     {
  38.  
  39.      dump ("got a proposal from " + screenname + "\n");
  40.  
  41.      inviteArgsObj = {
  42.          inviteProposalScreenName: screenname, 
  43.          inviteProposalObj: proposal,
  44.          invitedScreenNames: '',
  45.          inviteToExistingWindow: false,
  46.          inviteMode: 'incomingchat'
  47.      }
  48.     
  49.      var windowManager = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService();
  50.  
  51.      var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
  52.  
  53.      var topWindow = windowManagerInterface.getMostRecentWindow(null);
  54.  
  55.      //topWindow.focus();
  56.      topWindow.openDialog('chrome://aim/content/chatInviteBuddy.xul','_blank','chrome,all,dialog=no',inviteArgsObj); 
  57.     
  58.     },
  59.  
  60.     ChatInvite : function (roomname, language, screennamelist, msg)
  61.     {
  62.     // XXX hardcoding en for now, we have no way of
  63.     // determining what this might be from the URL 
  64.         inviteArgsObj = {
  65.       invitedScreenNames: screennamelist, 
  66.          inviteToExistingRoom: roomname,
  67.          inviteLanguage: "en",
  68.             inviteToExistingWindow: false,
  69.          inviteMode: 'outgoingchat',
  70.             invitationmsg: msg
  71.   }
  72.     
  73.         var windowManager = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService();
  74.  
  75.         var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
  76.  
  77.         var topWindow = windowManagerInterface.getMostRecentWindow(null);
  78.         topWindow.openDialog('chrome://aim/content/chatInviteBuddy.xul','_blank','chrome,all,dialog=no',inviteArgsObj); 
  79.     },
  80.     
  81.     GoChat : function (roomname, exchange, instance)
  82.     {
  83.                 var language = "en";
  84.         chatContentArgsObj = {
  85.                  chatRoomName : roomname,
  86.                  chatLanguage : language,
  87.             incomingChat : false,
  88.             instance : instance,
  89.             exchange : exchange,
  90.             fromurl : true
  91.              }
  92.     
  93.         var windowManager = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService();
  94.  
  95.         var    windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
  96.  
  97.         var topWindow = windowManagerInterface.getMostRecentWindow(null);
  98.  
  99.         topWindow.openDialog('chrome://aim/content/chatContent.xul','','chrome,all,dialog=no',chatContentArgsObj); 
  100.     }
  101.  
  102. }
  103.  
  104. var module = {
  105.     registerSelf: function (compMgr, fileSpec, location, type) {
  106.         compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentManagerObsolete);
  107.         compMgr.registerComponentWithType(this.myCID,
  108.             "nsJSAimChatRendezvous",
  109.                 "@netscape.com/js/aim/chatrendezvous;1",
  110.                 fileSpec, location, true, true, type);
  111.     },
  112.  
  113.     getClassObject: function (compMgr, cid, iid) {
  114.         if (!cid.equals(this.myCID))
  115.             throw Components.results.NS_ERROR_NO_INTERFACE;
  116.         
  117.         if (!iid.equals(Components.interfaces.nsIFactory))
  118.             throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
  119.  
  120.         return this.myFactory;
  121.     },
  122.  
  123.     canUnload: function () {
  124.     },
  125.     
  126.     myCID: Components.ID("{38E07345-2DC7-11d4-BA1A-0010833594E9}"),
  127.     
  128.     myFactory: {
  129.         createInstance: function (outer, iid) {
  130.             if (outer != null)
  131.                 throw Components.results.NS_ERROR_NO_AGGREGATION;
  132.             
  133.             if (!(iid.equals(Components.interfaces.nsIAimChatRendezvousCallback) || iid.equals(Components.interfaces.nsISupports))) {
  134.                 throw Components.results.NS_ERROR_INVALID_ARG;
  135.             }
  136.  
  137.             return new nsJSAimChatRendezvous();
  138.         }
  139.     }
  140. };
  141.  
  142. function NSGetModule(compMgr, fileSpec) { return module; }
  143.